This RFC specifies an IAB standards track protocol for the Internet
community, and requests discussion and suggestions for improvements.
Please refer to the current edition of the ``IAB Official Protocol
Standards'' for the standardization state and status of this protocol.
Distribution of this memo is unlimited.
Abstract
This memo documents version 2 of the OSPF protocol. OSPF is a link-
state based routing protocol. It is designed to be run internal to a
single Autonomous System. Each OSPF router maintains an identical
database describing the Autonomous System's topology. From this
database, a routing table is calculated by constructing a shortest-path
tree.
OSPF recalculates routes quickly in the face of topological changes,
utilizing a minimum of routing protocol traffic. OSPF provides support
for equal-cost multipath. Separate routes can be calculated for each IP
type of service. An area routing capability is provided, enabling an
additional level of routing protection and a reduction in routing
protocol traffic. In addition, all OSPF routing protocol exchanges are
authenticated.
Version 1 of the OSPF protocol was documented in RFC 1131. The
differences between the two versions are explained in Appendix F.
Please send comments to ospf@trantor.umd.edu.
1. Introduction
This document is a specification of the Open Shortest Path First (OSPF)
internet routing protocol. OSPF is classified as an Internal Gateway
Protocol (IGP). This means that it distributes routing information
between routers belonging to a single Autonomous System. The OSPF
protocol is based on SPF or link-state technology. This is a departure
[Moy] [Page 1]
RFC 1247 OSPF Version 2 July 1991
from the Bellman-Ford base used by traditional internet routing
protocols.
The OSPF protocol was developed by the OSPF working group of the
Internet Engineering Task Force. It has been designed expressly for the
internet environment, including explicit support for IP subnetting,
TOS-based routing and the tagging of externally-derived routing
information. OSPF also provides for the authentication of routing
updates, and utilizes IP multicast when sending/receiving the updates.
In addition, much work has been done to produce a protocol that responds
quickly to topology changes, yet involves small amounts of routing
protocol traffic.
The author would like to thank Rob Coltun, Milo Medin, Mike Petry and
the rest of the OSPF working group for the ideas and support they have
given to this project.
1.1 Protocol overview
OSPF routes IP packets based solely on the destination IP address and IP
Type of Service found in the IP packet header. IP packets are routed
"as is" -- they are not encapsulated in any further protocol headers as
they transit the Autonomous System. OSPF is a dynamic routing protocol.
It quickly detects topological changes in the AS (such as router
interface failures) and calculates new loop-free routes after a period
of convergence. This period of convergence is short and involves a
minimum of routing traffic.
In an SPF-based routing protocol, each router maintains a database
describing the Autonomous System's topology. Each participating router
has an identical database. Each individual piece of this database is a
particular router's local state (e.g., the router's usable interfaces
and reachable neighbors). The router distributes its local state
throughout the Autonomous System by flooding.
All routers run the exact same algorithm, in parallel. From the
topological database, each router constructs a tree of shortest paths
with itself as root. This shortest-path tree gives the route to each
destination in the Autonomous System. Externally derived routing
information appears on the tree as leaves.
OSPF calculates separate routes for each Type of Service (TOS). When
several equal-cost routes to a destination exist, traffic is distributed
equally among them. The cost of a route is described by a single
dimensionless metric.
OSPF allows sets of networks to be grouped together. Such a grouping is
[Moy] [Page 2]
RFC 1247 OSPF Version 2 July 1991
called an area. The topology of an area is hidden from the rest of the
Autonomous System. This information hiding enables a significant
reduction in routing traffic. Also, routing within the area is
determined only by the area's own topology, lending the area protection
from bad routing data. An area is a generalization of an IP subnetted
network.
OSPF enables the flexible configuration of IP subnets. Each route
distributed by OSPF has a destination and mask. Two different subnets
of the same IP network number may have different sizes (i.e., different
masks). This is commonly referred to as variable length subnets. A
packet is routed to the best (i.e., longest or most specific) match.
Host routes are considered to be subnets whose masks are "all ones"
(0xffffffff).
All OSPF protocol exchanges are authenticated. This means that only
trusted routers can participate in the Autonomous System's routing. A
variety of authentication schemes can be used; a single authentication
scheme is configured for each area. This enables some areas to use much
stricter authentication than others.
Externally derived routing data (e.g., routes learned from the Exterior
Gateway Protocol (EGP)) is passed transparently throughout the
Autonomous System. This externally derived data is kept separate from
the OSPF protocol's link state data. Each external route can also be
tagged by the advertising router, enabling the passing of additional
information between routers on the boundaries of the Autonomous System.
1.2 Definitions of commonly used terms
Here is a collection of definitions for terms that have a specific
meaning to the protocol and that are used throughout the text. The
reader unfamiliar with the Internet Protocol Suite is referred to [RS-
85-153] for an introduction to IP.
Router
A level three Internet Protocol packet switch. Formerly called a
gateway in much of the IP literature.
Autonomous System
A group of routers exchanging routing information via a common
routing protocol. Abbreviated as AS.
Internal Gateway Protocol
The routing protocol spoken by the routers belonging to an
Autonomous system. Abbreviated as IGP. Each Autonomous System has
[Moy] [Page 3]
RFC 1247 OSPF Version 2 July 1991
a single IGP. Different Autonomous Systems may be running different
IGPs.
Router ID
A 32-bit number assigned to each router running the OSPF protocol.
This number uniquely identifies the router within an Autonomous
System.
Network
In this paper, an IP network or subnet. It is possible for one
physical network to be assigned multiple IP network/subnet numbers.
We consider these to be separate networks. Point-to-point physical
networks are an exception - they are considered a single network no
matter how many (if any at all) IP network/subnet numbers are
assigned to them.
Network mask
A 32-bit number indicating the range of IP addresses residing on a
single IP network/subnet. This specification displays network masks
as hexadecimal numbers. For example, the network mask for a class C
IP network is displayed as 0xffffff00. Such a mask is often
displayed elsewhere in the literature as 255.255.255.0.
Multi-access networks
Those physical networks that support the attachment of multiple
(more than two) routers. Each pair of routers on such a network is
assumed to be able to communicate directly (e.g., multi-drop
networks are excluded).
Interface
The connection between a router and one of its attached networks.
An interface has state information associated with it, which is
obtained from the underlying lower level protocols and the routing
protocol itself. An interface to a network has associated with it a
single IP address and mask (unless the network is an unnumbered
point-to-point network). An interface is sometimes also referred to
as a link.
Neighboring routers
Two routers that have interfaces to a common network. On multi-
access networks, neighbors are dynamically discovered by OSPF's
Hello Protocol.
Adjacency
A relationship formed between selected neighboring routers for the
purpose of exchanging routing information. Not every pair of
neighboring routers become adjacent.
[Moy] [Page 4]
RFC 1247 OSPF Version 2 July 1991
Link state advertisement
Describes to the local state of a router or network. This includes
the state of the router's interfaces and adjacencies. Each link
state advertisement is flooded throughout the routing domain. The
collected link state advertisements of all routers and networks
forms the protocol's topological database.
Hello protocol
The part of the OSPF protocol used to establish and maintain
neighbor relationships. On multi-access networks the Hello protocol
can also dynamically discover neighboring routers.
Designated Router
Each multi-access network that has at least two attached routers has
a Designated Router. The Designated Router generates a link state
advertisement for the multi-access network and has other special
responsibilities in the running of the protocol. The Designated
Router is elected by the Hello Protocol.
The Designated Router concept enables a reduction in the number of
adjacencies required on a multi-access network. This in turn
reduces the amount of routing protocol traffic and the size of the
topological database.
Lower-level protocols
The underlying network access protocols that provide services to the
Internet Protocol and in turn the OSPF protocol. Examples of these
are the X.25 packet and frame levels for PDNs, and the ethernet data
link layer for ethernets.
1.3 Brief history of SPF-based routing technology
OSPF is an SPF-based routing protocol. Such protocols are also referred
to in the literature as link-state or distributed-database protocols.
This section gives a brief description of the developments in SPF-based
technology that have influenced the OSPF protocol.
The first SPF-based routing protocol was developed for use in the
ARPANET packet switching network. This protocol is described in
[McQuillan]. It has formed the starting point for all other SPF-based
protocols. The homogeneous Arpanet environment, i.e., single-vendor
packet switches connected by synchronous serial lines, simplified the
design and implementation of the original protocol.
Modifications to this protocol were proposed in [Perlman]. These
modifications dealt with increasing the fault tolerance of the routing
protocol through, among other things, adding a checksum to the link
[Moy] [Page 5]
RFC 1247 OSPF Version 2 July 1991
state advertisements (thereby detecting database corruption). The paper
also included means for reducing the routing traffic overhead in an
SPF-based protocol. This was accomplished by introducing mechanisms
which enabled the interval between link state advertisements to be
increased by an order of magnitude.
An SPF-based algorithm has also been proposed for use as an ISO IS-IS
routing protocol. This protocol is described in [DEC]. The protocol
includes methods for data and routing traffic reduction when operating
over broadcast networks. This is accomplished by election of a
Designated Router for each broadcast network, which then originates a
link state advertisement for the network.
The OSPF subcommittee of the IETF has extended this work in developing
the OSPF protocol. The Designated Router concept has been greatly
enhanced to further reduce the amount of routing traffic required.
Multicast capabilities are utilized for additional routing bandwidth
reduction. An area routing scheme has been developed enabling
information hiding/protection/reduction. Finally, the algorithm has
been modified for efficient operation in the internet environment.
1.4 Organization of this document
The first three sections of this specification give a general overview
of the protocol's capabilities and functions. Sections 4-16 explain the
protocol's mechanisms in detail. Packet formats, protocol constants,
configuration items and required management statistics are specified in
the appendices.
Labels such as HelloInterval encountered in the text refer to protocol
constants. They may or may not be configurable. The architectural
constants are explained in Appendix B. The configurable constants are
explained in Appendix C.
The detailed specification of the protocol is presented in terms of data
structures. This is done in order to make the explanation more precise.
Implementations of the protocol are required to support the
functionality described, but need not use the precise data structures
that appear in this paper.
2. The Topological Database
The database of the Autonomous System's topology describes a directed
graph. The vertices of the graph consist of routers and networks. A
graph edge connects two routers when they are attached via a physical
point-to-point network. An edge connecting a router to a network
[Moy] [Page 6]
RFC 1247 OSPF Version 2 July 1991
indicates that the router has an interface on the network.
The vertices of the graph can be further typed according to function.
Only some of these types carry transit data traffic; that is, traffic
that is neither locally originated nor locally destined. Vertices that
can carry transit traffic are indicated on the graph by having both
incoming and outgoing edges.
Vertex type Vertex name Transit?
_____________________________________
1 Router yes
2 Network yes
3 Stub network no
Table 1: OSPF vertex types.
OSPF supports the following types of physical networks:
Point-to-point networks
A network that joins a single pair of routers. A 56Kb serial line
is an example of a point-to-point network.
Broadcast networks
Networks supporting many (more than two) attached routers, together
with the capability to address a single physical message to all of
the attached routers (broadcast). Neighboring routers are
discovered dynamically on these nets using OSPF's Hello Protocol.
The Hello Protocol itself takes advantage of the broadcast
capability. The protocol makes further use of multicast
capabilities, if they exist. An ethernet is an example of a
broadcast network.
Non-broadcast networks
Networks supporting many (more than two) routers, but having no
broadcast capability. Neighboring routers are also discovered on
these nets using OSPF's Hello Protocol. However, due to the lack of
broadcast capability, some configuration information is necessary
for the correct operation of the Hello Protocol. On these networks,
OSPF protocol packets that are normally multicast need to be sent to
each neighboring router, in turn. An X.25 Public Data Network (PDN)
is an example of a non-broadcast network.
[Moy] [Page 7]
RFC 1247 OSPF Version 2 July 1991
The neighborhood of each network node in the graph depends on whether
the network has multi-access capabilities (either broadcast or non-
broadcast) and, if so, the number of routers having an interface to the
network. The three cases are depicted in Figure 1. Rectangles indicate
routers. Circles and oblongs indicate multi-access networks. Router
names are prefixed with the letters RT and network names with N. Router
interface names are prefixed by I. Lines between routers indicate
point-to-point networks. The left side of the figure shows a network
with its connected routers, with the resulting graph shown on the right.
Two routers joined by a point-to-point network are represented in the
directed graph as being directly connected by a pair of edges, one in
each direction. Interfaces to physical point-to-point networks need not
be assigned IP addresses. Such a point-to-point network is called
unnumbered. The graphical representation of point-to-point networks is
designed so that unnumbered networks can be supported naturally. When
interface addresses exist, they are modelled as stub routes. Note that
each router would then have a stub connection to the other router's
interface address (see Figure 1).
When multiple routers are attached to a multi-access network, the
directed graph shows all routers bidirectionally connected to the
network vertex (again, see Figure 1). If only a single router is
attached to a multi-access network, the network will appear in the
directed graph as a stub connection.
Each network (stub or transit) in the graph has an IP address and
associated network mask. The mask indicates the number of nodes on the
network. Hosts attached directly to routers (referred to as host
routes) appear on the graph as stub networks. The network mask for a
host route is always 0xffffffff, which indicates the presence of a
single node.
Figure 2 shows a sample map of an Autonomous System. The rectangle
labelled H1 indicates a host, which has a SLIP connection to router
RT12. Router RT12 is therefore advertising a host route. Lines between
______________________________________
(Figure not included in text version.)
Figure 1: Network map components
______________________________________
[Moy] [Page 8]
RFC 1247 OSPF Version 2 July 1991
routers indicate physical point-to-point networks. The only point-to-
point network that has been assigned interface addresses is the one
joining routers RT6 and RT10. Routers RT5 and RT7 have EGP connections
to other Autonomous Systems. A set of EGP-learned routes have been
displayed for both of these routers.
A cost is associated with the output side of each router interface.
This cost is configurable by the system administrator. The lower the
cost, the more likely the interface is to be used to forward data
traffic. Costs are also associated with the externally derived routing
data (e.g., the EGP-learned routes).
The directed graph resulting from the map in Figure 2 is depicted in
Figure 3. Arcs are labelled with the cost of the corresponding router
output interface. Arcs having no labelled cost have a cost of 0. Note
that arcs leading from networks to routers always have cost 0; they are
significant nonetheless. Note also that the externally derived routing
data appears on the graph as stubs.
The topological database (or what has been referred to above as the
directed graph) is pieced together from link state advertisements
generated by the routers. The neighborhood of each transit vertex is
represented in a single, separate link state advertisement. Figure 4
shows graphically the link state representation of the two kinds of
transit vertices: routers and multi-access networks. Router RT12 has an
______________________________________
(Figure not included in text version.)
Figure 2: A sample Autonomous System
______________________________________
__________________________________________
(Figures not included in text version.)
Figure 3: The resulting directed graph
Figure 4: Individual link state components
__________________________________________
[Moy] [Page 9]
RFC 1247 OSPF Version 2 July 1991
interface to two broadcast networks and a SLIP line to a host. Network
N6 is a broadcast network with three attached routers. The cost of all
links from network N6 to its attached routers is 0. Note that the link
state advertisement for network N6 is actually generated by one of the
attached routers: the router that has been elected Designated Router for
the network.
2.1 The shortest-path tree
When no OSPF areas are configured, each router in the Autonomous System
has an identical topological database, leading to an identical graphical
representation. A router generates its routing table from this graph by
calculating a tree of shortest paths with the router itself as root.
Obviously, the shortest-path tree depends on the router doing the
calculation. The shortest-path tree for router RT6 in our example is
depicted in Figure 5.
The tree gives the entire route to any destination network or host.
However, only the next hop to the destination is used in the forwarding
process. Note also that the best route to any router has also been
calculated. For the processing of external data, we note the next hop
and distance to any router advertising external routes. The resulting
routing table for router RT6 is pictured in Table 2. Note that there is
a separate route for each end of a numbered serial line (in this case,
the serial line between routers RT6 and RT10).
Routes to networks belonging to other AS'es (such as N12) appear as
dashed lines on the shortest path tree in Figure 5. Use of this
externally derived routing information is considered in the next
section.
______________________________________
(Figure not included in text version.)
Figure 5: The SPF tree for router RT6
______________________________________
[Moy] [Page 10]
RFC 1247 OSPF Version 2 July 1991
Destination Next Hop Distance
__________________________________
N1 RT3 10
N2 RT3 10
N3 RT3 7
N4 RT3 8
Ib * 7
Ia RT10 12
N6 RT10 8
N7 RT10 12
N8 RT10 10
N9 RT10 11
N10 RT10 13
N11 RT10 14
H1 RT10 21
__________________________________
RT5 RT5 6
RT7 RT10 8
Table 2: The portion of router RT6's routing table listing local
destinations.
2.2 Use of external routing information
After the tree is created the external routing information is examined.
This external routing information may originate from another routing
protocol such as EGP, or be statically configured (static routes).
Default routes can also be included as part of the Autonomous System's
external routing information.
External routing information is flooded unaltered throughout the AS. In
our example, all the routers in the Autonomous System know that router
RT7 has two external routes, with metrics 2 and 9.
OSPF supports two types of external metrics. Type 1 external metrics
are equivalent to the link state metric. Type 2 external metrics are
greater than the cost of any path internal to the AS. Use of Type 2
external metrics assumes that routing between AS'es is the major cost of
routing a packet, and eliminates the need for conversion of external
costs to internal link state metrics.
Here is an example of Type 1 external metric processing. Suppose that
the routers RT7 and RT5 in Figure 2 are advertising Type 1 external
metrics. For each external route, the distance from Router RT6 is
calculated as the sum of the external route's cost and the distance from
[Moy] [Page 11]
RFC 1247 OSPF Version 2 July 1991
Router RT6 to the advertising router. For every external destination,
the router advertising the shortest route is discovered, and the next
hop to the advertising router becomes the next hop to the destination.
Both Router RT5 and RT7 are advertising an external route to destination
network N12. Router RT7 is preferred since it is advertising N12 at a
distance of 10 (8+2) to Router RT6, which is better than router RT5's 14
(6+8). Table 3 shows the entries that are added to the routing table
when external routes are examined:
Destination Next Hop Distance
__________________________________
N12 RT10 10
N13 RT5 14
N14 RT5 14
N15 RT10 17
Table 3: The portion of router RT6's routing table listing external
destinations.
Processing of Type 2 external metrics is simpler. The AS boundary
router advertising the smallest external metric is chosen, regardless of
the internal distance to the AS boundary router. Suppose in our example
both router RT5 and router RT7 were advertising Type 2 external routes.
Then all traffic destined for network N12 would be forwarded to router
RT7, since 2 < 8. When several equal-cost Type 2 routes exist, the
internal distance to the advertising routers is used to break the tie.
Both Type 1 and Type 2 external metrics can be present in the AS at the
same time. In that event, Type 1 external metrics always take
precedence.
This section has assumed that packets destined for external destinations
are always routed through the advertising AS boundary router. This is
not always desirable. For example, suppose in Figure 2 there is an
additional router attached to network N6, called Router RTX. Suppose
further that RTX does not participate in OSPF routing, but does exchange
EGP information with the AS boundary router RT7. Then, router RT7 would
end up advertising OSPF external routes for all destinations that should
be routed to RTX. An extra hop will sometimes be introduced if packets
for these destinations need always be routed first to router RT7 (the
advertising router).
To deal with this situation, the OSPF protocol allows an AS boundary
[Moy] [Page 12]
RFC 1247 OSPF Version 2 July 1991
router to specify a "forwarding address" in its external advertisements.
In the above example, Router RT7 would specify RTX's IP address as the
"forwarding address" for all those destinations whose packets should be
routed directly to RTX.
The "forwarding address" has one other application. It enables routers
in the Autonomous System's interior to function as "route servers". For
example, in Figure 2 the router RT6 could become a route server, gaining
external routing information through a combination of static
configuration and external routing protocols. RT6 would then start
advertising itself as an AS boundary router, and would originate a
collection of OSPF external advertisements. In each external
advertisement, router RT6 would specify the correct Autonomous System
exit point to use for the destination through appropriate setting of the
advertisement's "forwarding address" field.
2.3 Equal-cost multipath
The above discussion has been simplified by considering only a single
route to any destination. In reality, if multiple equal-cost routes to
a destination exist, they are all discovered and used. This requires no
conceptual changes to the algorithm, and its discussion is postponed
until we consider the tree-building process in more detail.
With equal cost multipath, a router potentially has several available
next hops towards any given destination.
2.4 TOS-based routing
OSPF can calculate a separate set of routes for each IP Type of Service.
The IP TOS values are represented in OSPF exactly as they appear in the
IP packet header. This means that, for any destination, there can
potentially be multiple routing table entries, one for each IP TOS.
Up to this point, all examples shown have assumed that routes do not
vary on TOS. In order to differentiate routes based on TOS, separate
interface costs can be configured for each TOS. For example, in Figure
2 there could be multiple costs (one for each TOS) listed for each
interface. A cost for TOS 0 must always be specified.
When interface costs vary based on TOS, a separate shortest path tree is
calculated for each TOS (see Section 2.1). In addition, external costs
can vary based on TOS. For example, in Figure 2 router RT7 could
advertise a separate type 1 external metric for each TOS. Then, when
calculating the TOS X distance to network N15 the cost of the shortest
TOS X path to RT7 would be added to the TOS X cost advertised by RT7
[Moy] [Page 13]
RFC 1247 OSPF Version 2 July 1991
(see Section 2.2).
All OSPF implementations must be capable of calculating routes based on
TOS. However, OSPF routers can be configured to route all packets on
the TOS 0 path (see Appendix C), eliminating the need to calculate non-
zero TOS paths. This can be used to conserve routing table space and
processing resources in the router. These TOS-0-only routers can be
mixed with routers that do route based on TOS. TOS-0-only routers will
be avoided as much as possible when forwarding traffic requesting a
non-zero TOS.
It may be the case that no path exists for some non-zero TOS, even if
the router is calculating non-zero TOS paths. In that case, packets
requesting that non-zero TOS are routed along the TOS 0 path (see
Section 11.1).
3. Splitting the AS into Areas
OSPF allows collections of contiguous networks and hosts to be grouped
together. Such a group, together with the routers having interfaces to
any one of the included networks, is called an area. Each area runs a
separate copy of the basic SPF routing algorithm. This means that each
area has its own topological database and corresponding graph, as
explained in the previous section.
The topology of an area is invisible from the inga smn toiate setlculating directliste ng he and
procenioPPtiple equad Juling thase spCioPPutinad iple equad TOS 0 pathb1hs. Ine tiohis meaoforw ing N1 11.Rd iple etrafhan[8uld
end upi opol inoduco
con trafhters wrafhadve than routethe esources in the rrea ipes of exten trafhters wrafhadve than routethe esources in the rrea ipes of exten tred with romSPFbd up adverkquala runs th t
assace be i 6
RT6T. This means trnaetherr6tl eAality, if oute to an to t Thisidedrg
be
mixed would originate outeis
calculated as the sum of tTomSPFginate outefhterious gter is calculat
te out7
rnaoul'non-zero TOS, evst for hat should
be-shoulry external"route se ca 10the sarouter a
ach ternal routlo
responlimr-ODsv
lat
dverkqualaffic rnea h of uala runst ea11]
Rter RTOS (see ofSoutegf tTomSPFgiswRb7s tspecify RTquestim of tTomSPFginatehas bee
[Mea h s w-specified.
When interface costs vary based on TOS, a separate shortest path trest path taS.
Vers taS.
VerEachdedanycrated for ehe v ofetance from Routercenon-
zero )kedanycrat Jul ters wrafhadve than roTOS, evst for hat shoeddr2metrrhe esouhe esources in thwiost of
s TOS pathsalcuu
dverks bFgiswRb7esources in opolllll OS pat t Th on TOSc avaprotocolsvert,
[Mathe exter oute se5a disttnation.
B onlh
be srious gt pa
[Mall ernaetherr6tl eAality, i0te all packets on
the SPFg2ed
urred since it ous gteu
dshortes
calculat
irable.d o, i0te all ps wrafot canioPear in,rou
procenioPn ben adutes exismurces in the router. Trrespondin
is cac bsternal call out
iTOS,
ipecifiscoswarded ny destin towaPn begiv
questim6b ased bste in thydProcessingktionN1hs. Ine achernaiat, fp,ltal advN1 1tIn orderoTOS,on 2 n arehrough the advertif
OS. HgktionN1hl psth romtIopy of tchernspecicipure opy od
area.hbro TOS paf F rout RT10fiedfgiv
questP TOSost machernspDa
dmdf terfang ield.
2.3 Ed, eliminrehhat p tined an destin do limicuu
dvo N15 RT10 17
Table 3: The portion ofat p42ed
urred su l eAaliioP eparatts not par l eAaliioP eparatts not par l eAaliioP eparatts not par ga s . Taliis are hen essingktioiepalcipecifisings gt paAyd